-
Notifications
You must be signed in to change notification settings - Fork 103
convert column table to arrow if arrow present #551
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Thanks for your contribution! To satisfy the DCO policy in our contributing guide every commit message must include a sign-off message. One or more of your commits is missing this message. You can reword previous commit messages with an interactive rebase ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR updates the behavior of fetching query results by converting a ColumnTable to a PyArrow Table when PyArrow is available. It adds a new end-to-end test to validate that the catalogs() API returns a PyArrow Table and updates the fetchall_arrow() method in the client to merge columnar results when appropriate.
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
File | Description |
---|---|
tests/e2e/test_driver.py | Added test_catalogs_returns_arrow_table to verify arrow table conversion. |
src/databricks/sql/client.py | Updated fetchall_arrow() to merge ColumnTables and convert the final result where PyArrow is present. |
can you add more description in the PR to explain why you make this change? Is there any disruption risk of this change? |
Updated description |
self._next_row_index += partial_results.num_rows | ||
|
||
# If PyArrow is installed and we have a ColumnTable result, | ||
# convert it to a PyArrow Table for consistency with pre-3.5.0 behavior | ||
if isinstance(results, ColumnTable) and pyarrow: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this seems a breaking change? Does it impact the client uses 3.5.0 or higher
What type of PR is this?
Description
Added logic in
fetchall_arrow()
to convertColumnTable
results to apyarrow.Table
ifpyarrow
is installed, maintaining consistency with behavior prior to version 3.5.0. This behavior makes result set aligned with the docstring offetchall_pyarrow
methodHow is this tested?
Introduced a new test case,
test_catalogs_returns_arrow_table
, intests/e2e/test_driver.py
to validate that thefetchall_arrow
method returns apyarrow.Table
when used withcursor.catalogs()
. This test is conditionally executed if Arrow support is available.Related Tickets & Documents
Resolves #550